Codeforces Round 889 Div.1 C
(工事中)
問題
Codeforces Round 889 Div. 1
解き方
解答例
下は上に記載したコンテスト中の解き方で解いたときの提出結果である。
また、その提出の際に提出したソースコードをその下に転記する。
code: C
#include <stdio.h>
int main () {
int n = 0;
int m = 0;
int s500 = {};
int res = 0;
long long ans = 0LL;
long long mod_num = 1000000007LL;
long long dp501501 = {};
long long half = (mod_num+1LL)/2LL;
res = scanf("%d", &n);
res = scanf("%d", &m);
for (int i = 0; i < n; i++) {
res = scanf("%d", s+i);
si--;
}
ans += (long long)(m-sn-1);
for (int i = 0; i < n-1; i++) {
for (int j = si; j <= m; j++) {
for (int k = si+1; k <= m; k++) {
dpjk = 0LL;
}
}
dp[si][si+1] = 1LL;
for (int j = si+1; j <= si+1; j++) {
dpj[si+1] = (half*dpj-1[si+1])%mod_num;
}
for (int j = si+1+1; j <= m; j++) {
dp[si]j = (half*dp[si]j-1)%mod_num;
}
for (int j = si+1; j <= m; j++) {
for (int k = si+1+1; k <= m; k++) {
if (k > j+1) {
dpjk += dpjk-1*half;
dpjk %= mod_num;
}
if (k == m) {
dpjk += dpj-1k;
} else if (j <= k) {
dpjk += dpj-1k*half;
}
dpjk %= mod_num;
}
}
for (int j = si+1; j <= m; j++) {
ans += ((long long)(j-si))*dpjj;
}
}
printf("%lld\n", ans%mod_num);
return 0;
}
下は上に記載した計算量改善後の解き方でコンテスト終了後に解いたときの提出結果である。
また、その提出の際に提出したソースコードをその下に転記する。
code: C
#include <stdio.h>
int main () {
int n = 0;
int m = 0;
int s501 = {};
int res = 0;
long long ans = 0LL;
long long mod_num = 1000000007LL;
long long dp501501 = {};
long long half = (mod_num+1LL)/2LL;
res = scanf("%d", &n);
res = scanf("%d", &m);
for (int i = 0; i < n; i++) {
res = scanf("%d", s+i);
si--;
}
sn = m;
for (int j = m; j > 0; j--) {
dpj-1m = dpjm+1LL;
}
for (int j = m-1; j >= 0; j--) {
for (int k = m-1; k > j; k--) {
dpjk += half*(dpj+1k+dpjk+1+1LL);
dpjk %= mod_num;
}
}
for (int i = 0; i < n; i++) {
ans += dp[si][si+1];
}
printf("%lld\n", ans%mod_num);
return 0;
}
私の提出一覧
table: submissions_codeforces_round_889_div1_C
提出のURL 提出時刻 結果 備考
1回目 https://codeforces.com/contest/1854/submission/216307890 2023/07/30T01:08:04+0900 Accepted 計算量改善前
2回目 https://codeforces.com/contest/1854/submission/216378419 2023/07/30T09:04:35+0900 Accepted コンテスト終了後に計算量改善
感想